//
//  StormCommandTool.h
//  StormWatch
//
//  Created by 王岩 on 2024/9/3.
//

#import <Foundation/Foundation.h>
#import "AlarmListTableViewCell.h"

typedef enum : NSUInteger {
    /// 绑定
    Command_Bind,
    /// 解绑定
    Command_unBind,
    /// 闹钟
    Command_Alarm,
    /// 设置闹钟
    Command_Set_Alarm,
    /// 计步目标
    Command_StepGoal,
    /// 定时心率提醒
    Command_HeartRateReminders,
    /// 久坐提醒
    Command_Sedentary,
    /// 亮屏时间
    Command_ScreenTime,
    /// 抬手亮屏设置
    Command_RaiseHand,
    /// 消息通知
    Command_Notification, 
    /// OTA升级
    Command_OTA_Upgrade,    
    /// 版本号
    Command_OTA_Version,
    /// 表盘切换
    Command_DialSwitch,
    /// 实时数据  步数数据 卡路里（卡） 距离（米） 心率  电量（百分比）
    Command_CurrentData,
    /// 心率历史数据
    Command_HeartRateHistory,
    /// 血氧历史数据
    Command_BloodOxygenHistory,
    /// 睡眠历史数据
    Command_SleepHistory,
    ///运动记录数据0X0302：(无数据时回复帧头+长度0)
    Command_SportRecord,
    ///运动控制 0X0303：(无数据时回复帧头+长度0)
    Command_SportControl,
    ///实时天气
    Command_NowWeather,
    ///未来天气
    Command_DelayWeather,
    // 更新时间
    Command_UpdateDate,  
    // 设备信息
    Command_DeviceInfo,
    
} StormCommandEnum;

NS_ASSUME_NONNULL_BEGIN

@interface StormCommandTool : NSObject
SingletonH;

/* 步数 */
@property (nonatomic, assign) unsigned long  stepNum;
/* 卡路里 */
@property (nonatomic, assign) unsigned long calories;
/* 距离 */
@property (nonatomic, assign) unsigned long distance;
/* 心率 */
@property (nonatomic, assign) unsigned long heartRate;
/* 电量 */
@property (nonatomic, assign) unsigned long electric;


- (void)readStormCommand:(StormCommandEnum)type reBack:(void(^)(NSString *backData))bacdata;

- (void)writeStormCommand:(StormCommandEnum)type Value:(NSArray *)value reBack:(void(^)(NSString *backData))bacdata;

///  读取实时数据
/// - Parameter backBlock: 是否成功，  步数，卡路里 ， 距离，心率， 电量
- (void)readRealTimeData:(void(^)(BOOL success, unsigned long stepData, unsigned long caloriesData, unsigned long distanceData , unsigned long heartRateData, unsigned long electricData))backBlock;

///  读取步数目标
/// - Parameter backBlock: 是否成功，  步数
- (void)readStepTargetData:(void(^)(BOOL success, unsigned long stepData))backBlock;

///  读取睡眠数据
/// - Parameter backBlock: 是否成功，  深睡眠  浅睡眠   日期
- (void)readSleepData:(void(^)(BOOL success, unsigned long deepSleepData, unsigned long lightSleepData, unsigned long dateData))backBlock;

///  读取血氧数据
/// - Parameter backBlock: 是否成功，  最新数据   所有数据
- (void)readBloodOxygenData:(void(^)(BOOL success,  NSArray * allData))backBlock;


/// 读取 运动数据
/// - Parameter backBlock: 是否成功  类型  开始时间 运动时间  步数  卡路里  距离  心率
- (void)readSportData:(void(^)(BOOL success, NSArray<NSArray *> *allData))backBlock;

///  更改闹钟
- (void)writeAlermInfo:(AlermModel *)model CallBack:(void(^)(BOOL success))backBlock;
/// 更新时间
- (void)updateDateAndTimeCallBack:(void(^)(BOOL success))backBlock;

@end

NS_ASSUME_NONNULL_END
